1. Field of the Invention
The present invention relates to a multiple chamber wafer processing system and, more particularly, to a method and apparatus for scheduling processing for a semiconductor wafer within a multiple chamber semiconductor wafer processing tool.
2. Description of the Background Art
Semiconductor wafers are processed to produce integrated circuits using a plurality of sequential process steps. These steps are performed using a plurality of process chambers. An assemblage of process chambers served by a wafer transport robot is known as a multiple chamber semiconductor wafer processing tool or cluster tool. FIG. 1 depicts a schematic diagram of an illustrative multiple chamber semiconductor wafer processing tool known as the Endura.RTM. System manufactured by Applied Materials, Inc. of Santa Clara, Calif.
The cluster tool 100 contains, for example, four process chambers 104, 106, 108, 110, a transfer chamber 112, a preclean chamber 114, a buffer chamber 116, a wafer orienter/degas chamber 118, a cooldown chamber 102, and a pair of loadlock chambers 120 and 122. Each chamber represents a different stage or phase of semiconductor wafer processing. The buffer chamber 116 is centrally located with respect to the loadlock chambers 120 and 122, the wafer orienter/degas chamber 118, the preclean chamber 114 and the cooldown chamber 102. To effectuate wafer transfer amongst these chambers, the buffer chamber 116 contains a first robotic transfer mechanism 124. The wafers 128 are typically carried from storage to the system in a plastic transport cassette 126 that is placed within one of the loadlock chambers 120 or 122. The robotic transport mechanism 124 transports the wafers 128, one at a time, from the cassette 126 to any of the three chambers 118, 102, or 114. Typically, a given wafer is first placed in the wafer orienter/degas chamber 118, then moved to the preclean chamber 114. The cooldown chamber 102 is generally not used until after the wafer is processed within the process chambers 104, 106, 108, 110. Individual wafers are carried upon a wafer transport blade 130 that is located at the distal end of the first robotic mechanism 124. The transport operation is controlled by a sequencer 136.
The transfer chamber 112 is surrounded by and has access to the four process chambers 104, 106, 108 and 110 as well as the preclean chamber 114 and the cooldown chamber 102. To effectuate transport of a wafer amongst the chambers, the transfer chamber 112 contains a second robotic transport mechanism 132. The mechanism 132 has a wafer transport blade 134 attached to its distal end for carrying the individual wafers. In operation, the wafer transport blade 134 of the second transport mechanism 132 retrieves a wafer from the preclean chamber 114 and carries that wafer to the first stage of processing, for example, a physical vapor deposition (PVD) stage within chamber 104. Once the wafer is processed and the PVD stage deposits material upon the wafer, the wafer can then be moved to a second stage of processing and soon.
Once processing is complete within the process chambers, the transport mechanism 132 moves the wafer from the process chamber and transports the wafer to the cooldown chamber 102. The wafer is then removed from the cooldown chamber using the first transport mechanism 124 within the buffer chamber 116. Lastly, the wafer is placed in the transport cassette 126 within the loadlock chamber 122.
More generally, a cluster tool contains n chambers, denoted by C.sub.1, C.sub.2, . . . , C.sub.n, one or more transfer chambers (robots), and one or more loadlocks 120 and 122. The exact layout is called the configuration. A wafer W.sub.a to be processed is taken from a loadlock, placed successively into various chambers C.sub.i1, C.sub.i2, . . . , C.sub.ik, respectively, and then returned to a loadlock. As such, the wafer's "trace" through the tool is EQU LL.sub.1v2 .fwdarw.C.sub.1 .fwdarw.C.sub.i2 .fwdarw.. . . .fwdarw.C.sub.ik .fwdarw.LL.sub.1v2 ( 1)
where wafer W.sub.a visits chambers C.sub.i1, C.sub.i2, . . . , C.sub.ik. The notation C.sub.ij .fwdarw.C.sub.ij+1 above means that a wafer has to visit chamber C.sub.ij+1 after visiting chamber C.sub.ij. Note that a wafer's trace does not have to involve all chambers in the configuration; for example EQU LL.sub.1v2 .fwdarw.C.sub.i .fwdarw.LL.sub.1v2 ( 2)
is a valid trace even though there may be n&gt;1 chambers. Generally, it is assumed that chambers are visited by one wafer at a time. In (1) and (2), it is assumed that the cluster tool has two loadlocks; symbol v stands for logical OR. Usually a wafer is returned to the same position in the loadlock cassette that it was taken from. However, the following disclosure applies to any number of loadlocks and any number of chambers (including transfer chambers) where the wafer can be taken from one loadlock and returned to a different loadlock. a
As seen from (1) and (2) above, a wafer's trace is the trajectory of a particular wafer through the cluster tool; that is, a trace is the order in which chambers are visited by a wafer (not necessarily C.sub.i+1 after C.sub.i). This should be distinguished from the term "processing sequence" which is the order of applying processes (recipes) to a wafer. If more than one chamber runs the same process (parallel chambers), a given processing sequence may be satisfied by several different traces. A processing sequence is known ahead of time and is a part of a computer program called a "sequencer" which schedules the movement of wafers through the cluster tool; describes processes to be applied to wafers while in chambers; describes processes a chamber is subjected to while in clean mode; describes conditions for the status change of a chamber (e.g. how many wafers or how much time before the clean process must be performed); and so on. An alternative term for a sequencer is a router.
A wafer which completes its processing sequence and is returned to the loadlock is said to be processed by the tool. Roughly speaking, a tool's throughput is the number of wafers processed by the tool per unit of time. That is, if the tool needs t seconds to process n.sub.t wafers, then ##EQU1## is the tool's throughput measured in the interval 0,t!.
There are many ways to improve the tool's throughput for a given processing sequence. However, one important improvement is to use efficient scheduling routines for a given processing sequence.
The optimization of scheduling involves the choice of criteria used in deciding when to transfer a wafer from one chamber into the next (and which wafers should be moved prior to that) given the trace. A routine which schedules the movement of wafers through the cluster tool (based on a given processing sequence) is referred to as "scheduling routine." The steady-state throughput of a tool under scheduling routine A will be denoted by S(A). For ease of notation, its dependence on a wafer's trace and a tool's parameters (e.g., chamber processing times and wafer transfer times) are disregarded.
If n&gt;1 then, depending on a given processing sequence, one may consider a number of scheduling routines. The routine which maximizes the value of throughput is deemed "optimum" and the maximum attainable value of throughput is known as the tool's "capacity." That is, if A is the set of all possible scheduling algorithms for a given processing sequence, then A* is optimum if EQU S(A*)=max{S(A).vertline.A.epsilon.A} (7)
Clearly, the tool's capacity S(A*) depends on a given processing sequence as well as on chamber and robot parameters within the processing sequence. The tool's capacity is denoted by C.sub.*, where subscript*identifies the trace; its dependence on chamber and robot parameters are disregarded. The problem of finding good scheduling routines for a given processing sequence (especially, finding optimum routines where possible) is of considerable practical importance.
Recall that notation C.sub.i .fwdarw.C.sub.j means that a wafer has to visit chamber C.sub.j after visiting chamber C.sub.i. Logical OR denotes the case in which a wafer visits exactly one from a given subset of chambers. For example, ##STR1## describes a subtrace where after visiting chamber C.sub.i a wafer will visit exactly one of the k chambers from the subset {C.sub.r1, C.sub.r2, . . . ,C.sub.rk }. There are four basic traces commonly used in cluster-tool wafer processing. In the order presented below, these are: serial, parallel, mixed and knotted trace.
For an n-chamber cluster tool with chambers C.sub.1,C.sub.2, . . . ,C.sub.n the trace ##STR2## is referred to as a pure serial or just serial trace. A serial trace is used in a situation in which a wafer undergoes n-step processing (in n different chambers), where step k requires a successful completion of the previous step k-1, for k=2,3, . . . ,n.
With respect to the number of steps, the opposite of trace representation (9) is 1-step processing; its trace, ##STR3## EQU k=1,2, . . . ,n,
is referred to as a pure parallel or just parallel trace. If all chambers run the same process, then trace representation (10) can be written as ##STR4##
A serial-parallel or parallel-serial combination of traces is referred to as a mixed trace. An example of a mixed trace is: ##STR5## Mixed traces are usually derived from serial traces by duplicating chambers which have long processing times.
A chamber whose name appears more than once in a wafer's trace is referred to as a knot-chamber. The simplest example of a trace with one knot-chamber is the trace ##STR6## Trace (13) is also known as having a processing loop. A situation in which chambers C.sub.1,C.sub.2, . . . ,C.sub.k have wafers in them is called a deadlock. For example, in LL.sub.12 .fwdarw.C.sub.1 .fwdarw.C.sub.2 .fwdarw.C.sub.3 .fwdarw.C.sub.2 .fwdarw.LL.sub.12, chamber C.sub.2 is a knot-chamber. Note that if C.sub.1,C.sub.2 and C.sub.3 are occupied by wafers w.sub.1, w.sub.2 and w.sub.3, respectively, then w.sub.3 cannot move into C.sub.2 and w.sub.2 cannot move into C.sub.3 ; thus we have a deadlock (assuming no preemption by dual blade robot or the use of a buffer chamber).
Even though different wafers within a configuration may have different traces, a scheduling routine always pertains to a given processing sequence. A preferable scheduling routine maintains the tool's throughput very near to its capacity. Even if it were possible to use the same routine in each of the above traces, the overhead involved in verifying conditions which do not exist in a particular trace may be considerable.
The following are four scheduling routines that presently find use in the prior art.
In a push-and-wait routine, the reference trace is a serial trace. Specifically, the robot first moves a wafer w.sub.i from the LL.sub.12 to chamber C.sub.1 and waits at C.sub.1 until w.sub.i is processed and so on until finally it moves w.sub.i from C.sub.n to the LL.sub.12. The robot then takes the next wafer w.sub.i+1 from the LL.sub.12 and repeats the above sequence of n so-called "move and wait until processed" steps.
If n=1, then a push-and-wait routine is the only routine possible. The push-and-wait routine is the simplest possible routine and can be used in parallel as well as in mixed traces. Since it does not schedule concurrent chamber activities at all, it is effective only if robot waits at each of the n chambers for a very short time.
In a pull-through wafer packing routine, the reference trace is a serial trace (9). Let r be the highest chamber index such that chamber C.sub.r+1 is empty and chambers C.sub.1,C.sub.2, . . . ,C.sub.r contain wafers w.sub.1,w.sub.2, . . . ,w.sub.r respectively. (If r=n, then C.sub.r+1 is the LL.sub.12.) A single blade robot starts by moving w.sub.r from C.sub.r into C.sub.r+1 (if r=n, w.sub.n moves from C.sub.n into the LL.sub.12). The robot then goes to C.sub.r-1, waits if necessary, and moves w.sub.r-2 from C.sub.r-1 and so on until finally the robot gets a new wafer w.sub.0 from the LL.sub.12 and places wafer w.sub.o into C.sub.1. The robot then goes into the starting position which is either at C.sub.r+1 (f r&lt;n-1) or at C.sub.n.
This routine is known as a wafer packing routine because it packs as many wafers into chambers as possible, thus maximizing the concurrent chamber processing activities. The pull-through packing routine starts with the highest-numbered chamber and moves (pulls) wafers, successively placing each wafer into the next higher-numbered chamber.
In a push-through wafer packing routine, the reference trace is a serial trace (9). Let r be the highest index such that chamber C.sub.r+1 is empty and chambers C.sub.1,C.sub.2, . . . ,C.sub.r contain wafers w.sub.1,w.sub.2, . . . ,w.sub.r, respectively. A dual blade robot starts by retrieving a new wafer w.sub.0 from the LL.sub.12. It then moves to C.sub.1, waits if necessary, moves w.sub.1 from C.sub.1 and places w.sub.0 into C.sub.1. Next, the robot moves to C.sub.2, waits if necessary, removes w.sub.2 from C.sub.2 and puts w.sub.1 (which was on the blade) into C.sub.2 and so on until finally the robot places w.sub.r into C.sub.r+1 (if r=n, it puts w.sub.n into the LL.sub.12). The robot then retrieves another wafer from the LL.sub.12 and repeats the above steps.
Clearly, pull-through and push-through wafer packing routines are two versions of the same packing routine. The push-through routine is so named because it starts with the lowest-numbered chamber and moves (pushes) wafers, successively replacing each wafer with a wafer from a lower-numbered chamber. This requires a dual (multi) blade robot which results in a somewhat higher throughput (because of a shorter wafer exchange time) than is possible with a pull-through wafer packing routine using a single blade robot.
In a reactive scheduling routine, the reference trace is a parallel trace (10). When the tool is finished processing a wafer w.sub.i the sequencer calls the robot to chamber C.sub.i. After completing current activities (if any), the robot moves to C.sub.i removes w.sub.i from C.sub.i and places s.sub.wi into the LL.sub.12, then removes a new wafer w.sub.i+1 from the LL.sub.12 and places it into C.sub.i. The robot is then ready to service the next chamber call.
A cycle comprised of moving a processed wafer w.sub.i from C.sub.i to the LL.sub.12 and placing w.sub.i+1 into C.sub.i is called a wafer exchange. Consequently, upon receiving a call to go to C.sub.i, the robot finishes a current wafer exchange (if any) and then moves to C.sub.i to accomplish the wafer exchange. This routine is known as a reactive scheduling routine because the robot reacts to chamber calls from the sequencer.
In an anticipated scheduling routine, the reference trace is a parallel trace (10). After completion of wafer exchange in chamber C.sub.i, a counter I (that corresponds to C.sub.i) is reset. The counter has a preset limit T.sub.i seconds, EQU t.sub.i :=T.sub.i -max.sub.r T.sub.r,i ( 14)
where T.sub.i is the processing time of C.sub.i and T.sub.r,i is the time a robot needs to reach home position at C.sub.i from the home position at C.sub.r. After t.sub.i seconds, the robot completes a current wafer exchange (if any) and then moves toward C.sub.i to accomplish an anticipated wafer exchange in C.sub.i.
This routine is known as an anticipated scheduling routine because the robot anticipates the instant of a chamber call and pre-positions itself to perform a wafer exchange. In both reactive and anticipated scheduling, chamber calls are stored (queued) and are serviced according to the routine (usually in the order received); simultaneous calls are resolved by external priorities.
Note that when applied to pure parallel traces waferpacking algorithms may induce unnecessary wait times and, consequently, the tool's throughput may suffer (especially when max.sub.i T.sub.i &gt;&gt;min.sub.i T.sub.i). Also note that reactive and anticipated scheduling are inadequate for pure serial traces. For example, if chamber C.sub.i requires a wafer exchange, the transfer chamber first has to verify the status of C.sub.i-1 and C.sub.i+1 (empty or not); if a wafer exchange is not possible, the call has to be stored (and reactivated later) resulting in unnecessary additional program complexity, CPU activity, and memory allocation.
Therefore, a need exists in the art for improved scheduling routines to increase throughput of a cluster tool that can be used in a variety of trace formats.